package mediateca.action;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileReader;
import java.io.InputStream;

import org.apache.struts2.convention.annotation.Action;

import com.opensymphony.xwork2.ActionSupport;
import org.apache.struts2.convention.annotation.Result;
import org.codehaus.plexus.util.Base64;

public class AjaxImageLoad extends ActionSupport {
	private File archivo;
	private String archivoContentType;
	private String archivoFileName;
	private String datos = "";
	private String imageBase64 = "";
	private FileInputStream fileInputStream;

	public File getArchivo() {
		return archivo;
	}

	public void setArchivo(File archivo) {
		this.archivo = archivo;
	}

	public String getArchivoContentType() {
		return archivoContentType;
	}

	public void setArchivoContentType(String archivoContentType) {
		this.archivoContentType = archivoContentType;
	}

	public String getArchivoFileName() {
		return archivoFileName;
	}

	public void setArchivoFileName(String archivoFileName) {
		this.archivoFileName = archivoFileName;
	}

	public String getDatos() {
		return datos;
	}

	public void setDatos(String datos) {
		this.datos = datos;
	}

	@Override
	public String execute() throws Exception {
		// TODO Auto-generated method stub
		return super.execute();
	}

	@Action(value = "/encodeImage", results = { @Result(name = "success", location = "/pages/books/loadPhoto.jsp") })
	public String encodeImage() throws Exception {
		//this.imageBase64="data:"+archivoContentType+";base64,";
		try {
			BufferedReader entrada = new BufferedReader(new FileReader(archivo));
			if (archivoContentType.indexOf("image/")>=0) {
				String aux;
				while ((aux = entrada.readLine()) != null) {
					datos += aux + "\n";
				}
			}
			byte[] encodedBytes = Base64.encodeBase64(datos.getBytes());
			this.imageBase64 = new String(encodedBytes);
			
		} catch (Exception e) {
			e.printStackTrace();
		}
		

		return SUCCESS;

	}

	public InputStream getFileInputStream() {

		return fileInputStream;
	}

	public String getImageBase64() {
		return imageBase64;
	}

	public void setImageBase64(String imageBase64) {
		this.imageBase64 = imageBase64;
	}
}